home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib01.dsk / GUIDED MISSILE GAME.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  87 lines

  1. 2  REM  ***********************
  2. 3  REM  * GUIDED MISSILE GAME *
  3. 4  REM  * MICRO-SPARC, INC.   *
  4. 5  REM  * P.O. BOX 325        *
  5. 6  REM  * LINCOLN MASS 01773  *
  6. 7  REM  * COPYRIGHT (C) 1980  *
  7. 8  REM  ***********************
  8. 10  HOME : VTAB 10: PRINT  TAB( 10)"GUIDED MISSILE GAME"
  9. 11  PRINT : PRINT "ENTER THE NUMBER OF THE PADDLES YOU": PRINT "ARE USING. ENTER THE HORIZONTAL CONTROL": PRINT "FIRST, AND THEN THE VERTICAL CONTROL"
  10. 12  INPUT "SEPARATED BY A COMMA - A,B :";A,B
  11. 13  PRINT : PRINT "** A PERFECT SCORE IS 30 **"
  12. 15  PRINT : PRINT "NOW SELECT STANDARD MISSILE MOTION (1)": INPUT "OR THE 'TRACER' OPTION (2) ";ZZ
  13. 18  IF SC >HS  THEN HS = SC
  14. 19 XX = 0:SC = 0:Q =  -16336
  15. 20 T = 60:TT = T:TD = 13:XX = XX +1
  16. 30 X = 140:Y = 80
  17. 150  HGR : HCOLOR= 3: HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0
  18. 160  GOSUB 1250: REM  DRAW FIRST TARGET
  19. 170  IF HS >0  THEN  VTAB 23: PRINT "PREV' HIGH SCORE=";HS
  20. 175  VTAB 21: CALL  -868: INVERSE : PRINT "GUIDED MISSILE": NORMAL 
  21. 180  IF XX = 1  THEN  VTAB 21: HTAB 20: PRINT "CONTROLLED MOTION"
  22. 185  IF XX = 2  THEN  VTAB 21: HTAB (20): INVERSE : PRINT "ACCELERATED MOTION": NORMAL 
  23. 190  IF XX = 3  THEN  VTAB 21: HTAB (20): INVERSE : PRINT "CONSTANT    MOTION": NORMAL 
  24. 200  REM  CONSTANT SPEED
  25. 210  GOSUB 1000: REM  READ PADDLES
  26. 215  IF XX = 2  THEN 300
  27. 220  IF PA >200  THEN H = 2
  28. 230  IF PA <50  THEN H =  -2
  29. 250  IF PB >200  THEN V = 2
  30. 260  IF PB <50  THEN V =  -2
  31. 262  REM  CONTROLLED MOTION
  32. 265  IF XX = 1  AND PA > = 50  AND PA < = 200  THEN H = 0
  33. 270  IF XX = 1  AND PB > = 50  AND PB < = 200  THEN V = 0
  34. 275  REM  CONSTANT MOTION
  35. 280  IF XX = 3  THEN H = H + INT( RND(1) *3 -1):V = V + INT( RND(1) *3 -1)
  36. 290  GOTO 360
  37. 300  REM  ACCELERATED MOTION
  38. 305  IF PA >200  THEN H = H +1
  39. 310  IF PA <50  THEN H = H -1
  40. 320  IF PA > = 50  AND PA < = 200  THEN H = 0
  41. 330  IF PB >200  THEN V = V +1
  42. 340  IF PB <50  THEN V = V -1
  43. 350  IF PB > = 50  AND PB < = 200  THEN V = 0
  44. 360  GOSUB 1100: GOSUB 1200: GOTO 210
  45. 1000  REM  READ PADDLES
  46. 1010 PA =  PDL(A) *50/50:PB =  PDL(B) *50/50: RETURN 
  47. 1100  REM  PLOT POINTS
  48. 1110  IF X +H >278  OR X +H <1  THEN  HCOLOR= 0: HPLOT X,Y:X = 140:Y = 70:H = 0:V = 0: GOTO 1160
  49. 1120  IF Y +V >158  OR Y +V <1  THEN  HCOLOR= 0: HPLOT X,Y:X = 140:Y = 70:H = 0:V = 0: GOTO 1160
  50. 1140  HCOLOR= 3: HPLOT X +H,Y +V
  51. 1145  IF ZZ = 2  THEN 1160
  52. 1150  HCOLOR= 0: HPLOT X,Y
  53. 1160 X = X +H:Y = Y +V: RETURN 
  54. 1200  REM  TEST HIT
  55. 1205  IF X >TX  AND Y >TY  AND X <TX +TD  AND Y <TY +TD  THEN SC = SC +1: VTAB 22: CALL  -868: PRINT "A HIT! SCORE =";SC:S = 50: GOTO 1300
  56. 1210  IF T = 0  THEN SC = SC -1: VTAB 22: CALL  -868: PRINT "A MISS! SCORE =";SC:S = 10: HCOLOR= 0: HPLOT TX,TY TO TX +TD,TY TO TX +TD,TY +TD TO TX,TY +TD TO TX,TY: GOTO 1250
  57. 1220  VTAB 23: HTAB 22: CALL  -868:T = T -1: PRINT "TIME LEFT=";T: RETURN 
  58. 1250  HCOLOR= 0: HPLOT X,Y:X = 140:Y = 70:H = 0:V = 0
  59. 1255 T = TT:TX =  RND(1) *200 +20:TY =  RND(1) *100 +30
  60. 1258  FOR P = 1 TO S:R =  PEEK(Q) - PEEK(Q) + PEEK(Q) - PEEK(Q) + PEEK(Q): NEXT P
  61. 1259 TD = TD -1: IF TD = 2  AND XX = 3  THEN  TEXT : GOTO 1500
  62. 1264  IF TD = 2  AND XX <3  THEN 20
  63. 1265  HCOLOR= 3: HPLOT TX,TY TO TX +TD,TY TO TX +TD,TY +TD TO TX,TY +TD TO TX,TY
  64. 1270  RETURN 
  65. 1300  REM  EXPLOSION
  66. 1310  HCOLOR= 0: HPLOT TX,TY TO TX +TD,TY TO TX +TD,TY +TD TO TX,TY +TD TO TX,TY
  67. 1315 X1 = TX:X2 = TX +TD:X3 = X1:Y1 = TY:Y2 = TY +TD:Y3 = Y1
  68. 1320  FOR I = 1 TO 5
  69. 1325 L = 3
  70. 1330  HCOLOR= 3: IF I = 5  THEN 1380
  71. 1340  HPLOT X3,Y1 -L TO X3 +TD,Y1 -L
  72. 1350  HPLOT X2 +L,Y3 TO X2 +L,Y3 +TD
  73. 1360  HPLOT X3,Y2 +L TO X3 +TD,Y2 +L
  74. 1370  HPLOT X1 -L,Y3 TO X1 -L,Y3 +TD
  75. 1380  HCOLOR= 0: HPLOT X3,Y1 TO X3 +TD,Y1
  76. 1390  HPLOT X2,Y3 TO X2,Y3 +TD
  77. 1395  HPLOT X3,Y2 TO X3 +TD,Y2
  78. 1400  HPLOT X1,Y3 TO X1,Y3 +TD
  79. 1430 X1 = X1 -L:X2 = X2 +L:Y1 = Y1 -L:Y2 = Y2 +L
  80. 1440  NEXT I
  81. 1450 S = 50: GOTO 1250
  82. 1500  REM  END OF GAME
  83. 1505  HOME : PRINT "YOUR SCORE FOR THIS GAME IS ";SC
  84. 1510  IF SC = 30  THEN  PRINT "A PERFECT SCORE! YOU'RE QUITE A PLAYER!"
  85. 1515  IF SC <30  AND SC <HS  THEN  PRINT "TRY TO BEAT THE BEST SCORE OF ";HS
  86. 1520  IF SC >HS  THEN  PRINT "YOU BEAT THE PREVIOUS HIGH SCORE OF ";HS
  87. 1525  INPUT "TO PLAY AGAIN, HIT RETURN ";X$: GOTO 18